iPhoneで動作するC#/F#のコーディングをサポートする.NETのIDE(Continuous)を試してみた
1 はじめに
7月6日、アップルストアで、Continuousというアプリが公開されました。これは、iPhone、iPadで動作する、C#及びF#のコーディングをサポートする.NETのIDEです。
iPhoneでC#?っと言う、ちょっとビックリするようなこのアプリ、早速、試してみました。
Continuous .NET C# and F# IDE By Krueger Systems, Inc.
ちょっと誤解がないように最初に言っておくと、このIDEでは、環境の中で記述したコードを動作(プレビュー)させることはできますが、コンパイルしてipaを作成するというような事は出来ません。
しかし、実際に触ってみると、Visual StudioやXamarin Studioを操作しているのでは?という錯覚を起こすほど、構文解析による強調表示やインテリセンス、エラー表示に優れており、非常に快適に利用できます。また、オプション設定によりコード変更と同時にコンパイル実行することもでき、修正した内容をリアルに確認することも可能です。そう、F5「コンパイル実行」という動作が必要ないのです。
コードは、Xamarin.iOSと同等であり、IDEからのヘルプは、Xamarinのドキュメントにつながっています。ライブラリとしてはUIKitはもちろん、SceneKitやSpriteKit、そしてXamarin.Fomrsなどにも対応しています。
プロジェクト管理も可能で、ライプラリやアプリも構築もできますが、C#スクリプトにも対応しており、どちらかというと、この「C#スクリプトを使用して、部分的なコードの動作を素早く確認する」と言うあたりが、一番の利用目的になるのかも知れません。
価格は、1,200円で、iOS9が必要です。また、コンパイラは、C#6とF#4が搭載されているようです。
2 操作要領
(1) 設定画面
下記の図は、設定の画面です。(ダークモードの場合が左)
上から、「フォントの拡大縮小」「ダークモード」「自動実行」「ヘルプ」「サンプルの初期化」「各言語の設定(インデントのキャラクタ数)」が並んでいます。
ここの自動実行「Auto Run」が、最初に触れたリアルタイム実行で、デフォルトでここがONになっています。
「Help」をタップすると、操作方法に関する詳細なドキュメントが表示されますので、まず、最初にこちらを確認すると一通りの利用方法が掴めると思います。
最初に、サンプルコードをイジって色々確認したりして、壊してしまうことがあるかも知れませんが、「Restore Example」をタップすると、一発で元に戻りますので、安心してイジることができます。
(2) 拡張キー入力
キー入力の際に、キーボードの上に、拡張キーボードが表示され、コーディングで使われる記号が、スクロールして利用できます。これが、思いの外、便利でビックリします。
(3) コード補完について
インテリセンスによる補完も、非常に快適で、大文字、小文字を気にすることなく先頭3文字ぐらいを入力すると、だいたい解決できます。
(4) ヘルプ
コードにカーソルをあてると、関連リンクへの選択状態となります。そしてこれを選択すると、ドキュメント(Xamarinのヘルプページ)へジャンプすることができます。
(5) 画面構成
IDEの画面構成としては、「ファイルの一覧」、「コンソール」、「プレビュー」の3つのタブで構成されています。
「ファイル一覧」には、現在対象となっているファイル(プロジェクト)のファイル一覧が表示されており、選択すると当該ファイルが表示されます。図では、Map.csxを選択して表示しています。
2つ目のタブは、コンソール出力です。図では、早速、Map.csxをビルドして実行しているログが出力されています。
最後のタブは、ウオッチ(実行画面の出力)です。 アイコンをタップして、全画面表示と切り替えることもできます。
3 C#スクリプト
それでは、実際に簡単なC#スクリプトを作成してみたいと思います。
最初に、左上の「+」をタップして、新規にファイルを作成します。 選択画面では、言語を「C#」とし、「Script」を選択します。
ここで、名前をつけるように促されますので、適当な名前をつけ(ここではtest.csxとしました)Create Scriptをタップすると、Hello World!を表示するC#スクリプトの雛形が生成されます。
ここで非常に単純な、Xamarin.Formsのコードを書いてみます。
ボタンを表示して、それが押されたらHello Worldと表示するだけです。
実行している様子です。
4 最後に
今回は、Continuousを使用してiPhoneでXamarin.Forms(C#)を書いてみました。 正直、そんなことができるようになるなんて、夢にも想像してませんでした。
ドキュメントによると、クラスのオーバーライドに一部制限があったり、 System.Reflectionが機能せず、これに依存するライブラリが動作しないなど、幾つかの制限が記載されておりましたが、詳しくはドキュメントをご参照ください。
5 参考資料
Continuous .NET C# and F# IDE By Krueger Systems, Inc.
Pythonistaなんて目じゃない?C#対応のiOS用本格的開発環境「Continuous」が登場
Xamarin記事一覧(SAPPOROWORKSの覚書)
[Developers.IO] Xamarinシリーズ